home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1999 July: Mac OS SDK / Dev.CD Jul 99 SDK1.toast / Development Kits / Mac OS / Interfaces&Libraries / Universal / Interfaces / PInterfaces / Resources.p < prev    next >
Encoding:
Text File  |  1998-08-17  |  12.7 KB  |  392 lines  |  [TEXT/MPS ]

  1. {
  2.      File:        Resources.p
  3.  
  4.      Contains:    Resource Manager Interfaces.
  5.  
  6.      Version:    Technology:    Mac OS 8.1
  7.                  Release:    Universal Interfaces 3.2
  8.  
  9.      Copyright:    © 1985-1998 by Apple Computer, Inc., all rights reserved
  10.  
  11.      Bugs?:        For bug reports, consult the following page on
  12.                  the World Wide Web:
  13.  
  14.                      http://developer.apple.com/bugreporter/
  15.  
  16. }
  17. {$IFC UNDEFINED UsingIncludes}
  18. {$SETC UsingIncludes := 0}
  19. {$ENDC}
  20.  
  21. {$IFC NOT UsingIncludes}
  22.  UNIT Resources;
  23.  INTERFACE
  24. {$ENDC}
  25.  
  26. {$IFC UNDEFINED __RESOURCES__}
  27. {$SETC __RESOURCES__ := 1}
  28.  
  29. {$I+}
  30. {$SETC ResourcesIncludes := UsingIncludes}
  31. {$SETC UsingIncludes := 1}
  32.  
  33. {$IFC UNDEFINED __MACTYPES__}
  34. {$I MacTypes.p}
  35. {$ENDC}
  36. {$IFC UNDEFINED __MIXEDMODE__}
  37. {$I MixedMode.p}
  38. {$ENDC}
  39. {$IFC UNDEFINED __FILES__}
  40. {$I Files.p}
  41. {$ENDC}
  42.  
  43.  
  44. {$PUSH}
  45. {$ALIGN MAC68K}
  46. {$LibExport+}
  47.  
  48.  
  49.  
  50. CONST
  51.     resSysHeap                    = 64;                            { System or application heap? }
  52.     resPurgeable                = 32;                            { Purgeable resource? }
  53.     resLocked                    = 16;                            { Load it in locked? }
  54.     resProtected                = 8;                            { Protected? }
  55.     resPreload                    = 4;                            { Load in on OpenResFile? }
  56.     resChanged                    = 2;                            { Resource changed? }
  57.     mapReadOnly                    = 128;                            { Resource file read-only }
  58.     mapCompact                    = 64;                            { Compact resource file }
  59.     mapChanged                    = 32;                            { Write map out at update }
  60.  
  61.     resSysRefBit                = 7;                            { reference to system/local reference }
  62.     resSysHeapBit                = 6;                            { In system/in application heap }
  63.     resPurgeableBit                = 5;                            { Purgeable/not purgeable }
  64.     resLockedBit                = 4;                            { Locked/not locked }
  65.     resProtectedBit                = 3;                            { Protected/not protected }
  66.     resPreloadBit                = 2;                            { Read in at OpenResource? }
  67.     resChangedBit                = 1;                            { Existing resource changed since last update }
  68.     mapReadOnlyBit                = 7;                            { is this file read-only? }
  69.     mapCompactBit                = 6;                            { Is a compact necessary? }
  70.     mapChangedBit                = 5;                            { Is it necessary to write map? }
  71.  
  72.     kResFileNotOpened            = -1;                            { ref num return as error when opening a resource file }
  73.     kSystemResFile                = 0;                            { this is the default ref num to the system file }
  74.  
  75.  
  76.  
  77. TYPE
  78. {$IFC TYPED_FUNCTION_POINTERS}
  79.     ResErrProcPtr = PROCEDURE(thErr: OSErr);
  80. {$ELSEC}
  81.     ResErrProcPtr = Register68kProcPtr;
  82. {$ENDC}
  83.  
  84.     ResErrUPP = UniversalProcPtr;
  85.  
  86. CONST
  87.     uppResErrProcInfo = $00001002;
  88.  
  89. FUNCTION NewResErrProc(userRoutine: ResErrProcPtr): ResErrUPP;
  90.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  91.     INLINE $2E9F;
  92.     {$ENDC}
  93.  
  94. PROCEDURE CallResErrProc(thErr: OSErr; userRoutine: ResErrUPP);
  95.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  96.     {To be implemented:  Glue to move parameters into registers.}
  97.     {$ENDC}
  98. {$IFC NOT TARGET_OS_MAC }
  99. {  QuickTime 3.0 }
  100.  
  101. TYPE
  102. {$IFC TYPED_FUNCTION_POINTERS}
  103.     ResourceEndianFilterPtr = FUNCTION(theResource: Handle; currentlyNativeEndian: BOOLEAN): OSErr;
  104. {$ELSEC}
  105.     ResourceEndianFilterPtr = ProcPtr;
  106. {$ENDC}
  107.  
  108. {$ENDC}
  109.  
  110. FUNCTION InitResources: INTEGER;
  111.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  112.     INLINE $A995;
  113.     {$ENDC}
  114. PROCEDURE RsrcZoneInit;
  115.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  116.     INLINE $A996;
  117.     {$ENDC}
  118. PROCEDURE CloseResFile(refNum: INTEGER);
  119.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  120.     INLINE $A99A;
  121.     {$ENDC}
  122. FUNCTION ResError: OSErr;
  123.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  124.     INLINE $A9AF;
  125.     {$ENDC}
  126. FUNCTION CurResFile: INTEGER;
  127.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  128.     INLINE $A994;
  129.     {$ENDC}
  130. FUNCTION HomeResFile(theResource: Handle): INTEGER;
  131.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  132.     INLINE $A9A4;
  133.     {$ENDC}
  134. PROCEDURE CreateResFile(fileName: Str255);
  135.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  136.     INLINE $A9B1;
  137.     {$ENDC}
  138. FUNCTION OpenResFile(fileName: Str255): INTEGER;
  139.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  140.     INLINE $A997;
  141.     {$ENDC}
  142. PROCEDURE UseResFile(refNum: INTEGER);
  143.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  144.     INLINE $A998;
  145.     {$ENDC}
  146. FUNCTION CountTypes: INTEGER;
  147.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  148.     INLINE $A99E;
  149.     {$ENDC}
  150. FUNCTION Count1Types: INTEGER;
  151.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  152.     INLINE $A81C;
  153.     {$ENDC}
  154. PROCEDURE GetIndType(VAR theType: ResType; index: INTEGER);
  155.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  156.     INLINE $A99F;
  157.     {$ENDC}
  158. PROCEDURE Get1IndType(VAR theType: ResType; index: INTEGER);
  159.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  160.     INLINE $A80F;
  161.     {$ENDC}
  162. PROCEDURE SetResLoad(load: BOOLEAN);
  163.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  164.     INLINE $A99B;
  165.     {$ENDC}
  166. FUNCTION CountResources(theType: ResType): INTEGER;
  167.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  168.     INLINE $A99C;
  169.     {$ENDC}
  170. FUNCTION Count1Resources(theType: ResType): INTEGER;
  171.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  172.     INLINE $A80D;
  173.     {$ENDC}
  174. FUNCTION GetIndResource(theType: ResType; index: INTEGER): Handle;
  175.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  176.     INLINE $A99D;
  177.     {$ENDC}
  178. FUNCTION Get1IndResource(theType: ResType; index: INTEGER): Handle;
  179.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  180.     INLINE $A80E;
  181.     {$ENDC}
  182. FUNCTION GetResource(theType: ResType; theID: INTEGER): Handle;
  183.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  184.     INLINE $A9A0;
  185.     {$ENDC}
  186. FUNCTION Get1Resource(theType: ResType; theID: INTEGER): Handle;
  187.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  188.     INLINE $A81F;
  189.     {$ENDC}
  190. FUNCTION GetNamedResource(theType: ResType; name: Str255): Handle;
  191.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  192.     INLINE $A9A1;
  193.     {$ENDC}
  194. FUNCTION Get1NamedResource(theType: ResType; name: Str255): Handle;
  195.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  196.     INLINE $A820;
  197.     {$ENDC}
  198. PROCEDURE LoadResource(theResource: Handle);
  199.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  200.     INLINE $A9A2;
  201.     {$ENDC}
  202. PROCEDURE ReleaseResource(theResource: Handle);
  203.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  204.     INLINE $A9A3;
  205.     {$ENDC}
  206. PROCEDURE DetachResource(theResource: Handle);
  207.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  208.     INLINE $A992;
  209.     {$ENDC}
  210. FUNCTION UniqueID(theType: ResType): INTEGER;
  211.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  212.     INLINE $A9C1;
  213.     {$ENDC}
  214. FUNCTION Unique1ID(theType: ResType): INTEGER;
  215.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  216.     INLINE $A810;
  217.     {$ENDC}
  218. FUNCTION GetResAttrs(theResource: Handle): INTEGER;
  219.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  220.     INLINE $A9A6;
  221.     {$ENDC}
  222. PROCEDURE GetResInfo(theResource: Handle; VAR theID: INTEGER; VAR theType: ResType; VAR name: Str255);
  223.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  224.     INLINE $A9A8;
  225.     {$ENDC}
  226. PROCEDURE SetResInfo(theResource: Handle; theID: INTEGER; name: Str255);
  227.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  228.     INLINE $A9A9;
  229.     {$ENDC}
  230. PROCEDURE AddResource(theData: Handle; theType: ResType; theID: INTEGER; name: Str255);
  231.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  232.     INLINE $A9AB;
  233.     {$ENDC}
  234. FUNCTION GetResourceSizeOnDisk(theResource: Handle): LONGINT;
  235.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  236.     INLINE $A9A5;
  237.     {$ENDC}
  238. FUNCTION GetMaxResourceSize(theResource: Handle): LONGINT;
  239.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  240.     INLINE $A821;
  241.     {$ENDC}
  242. FUNCTION RsrcMapEntry(theResource: Handle): LONGINT;
  243.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  244.     INLINE $A9C5;
  245.     {$ENDC}
  246. PROCEDURE SetResAttrs(theResource: Handle; attrs: INTEGER);
  247.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  248.     INLINE $A9A7;
  249.     {$ENDC}
  250. PROCEDURE ChangedResource(theResource: Handle);
  251.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  252.     INLINE $A9AA;
  253.     {$ENDC}
  254. PROCEDURE RemoveResource(theResource: Handle);
  255.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  256.     INLINE $A9AD;
  257.     {$ENDC}
  258. PROCEDURE UpdateResFile(refNum: INTEGER);
  259.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  260.     INLINE $A999;
  261.     {$ENDC}
  262. PROCEDURE WriteResource(theResource: Handle);
  263.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  264.     INLINE $A9B0;
  265.     {$ENDC}
  266. PROCEDURE SetResPurge(install: BOOLEAN);
  267.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  268.     INLINE $A993;
  269.     {$ENDC}
  270. FUNCTION GetResFileAttrs(refNum: INTEGER): INTEGER;
  271.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  272.     INLINE $A9F6;
  273.     {$ENDC}
  274. PROCEDURE SetResFileAttrs(refNum: INTEGER; attrs: INTEGER);
  275.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  276.     INLINE $A9F7;
  277.     {$ENDC}
  278. FUNCTION OpenRFPerm(fileName: Str255; vRefNum: INTEGER; permission: SInt8): INTEGER;
  279.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  280.     INLINE $A9C4;
  281.     {$ENDC}
  282. FUNCTION RGetResource(theType: ResType; theID: INTEGER): Handle;
  283.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  284.     INLINE $A80C;
  285.     {$ENDC}
  286. {
  287.     Note:     The HOpenResFile trap was not implemented until System 7.  If you want to call HOpenResFile
  288.             while running on System 6 machines, then define USE_HOPENRESFILE_GLUE and link with
  289.             Interface.o which contains glue to implement HOpenResFile on pre-System 7 machines.
  290. }
  291. {$IFC NOT UNDEFINED USE_HOPENRESFILE_GLUE }
  292. FUNCTION HOpenResFile(vRefNum: INTEGER; dirID: LONGINT; fileName: Str255; permission: SInt8): INTEGER;
  293. {$ELSEC}
  294. FUNCTION HOpenResFile(vRefNum: INTEGER; dirID: LONGINT; fileName: Str255; permission: SInt8): INTEGER;
  295.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  296.     INLINE $A81A;
  297.     {$ENDC}
  298. {$ENDC}
  299.  
  300. {
  301.     Note:     The HCreateResFile trap was not implemented until System 7.  If you want to call HCreateResFile
  302.             while running on System 6 machines, then define USE_HCREATERESFILE_GLUE and link with
  303.             Interface.o which contains glue to implement HCreateResFile on pre-System 7 machines.
  304. }
  305. {$IFC NOT UNDEFINED USE_HCREATERESFILE_GLUE }
  306. PROCEDURE HCreateResFile(vRefNum: INTEGER; dirID: LONGINT; fileName: Str255);
  307. {$ELSEC}
  308. PROCEDURE HCreateResFile(vRefNum: INTEGER; dirID: LONGINT; fileName: Str255);
  309.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  310.     INLINE $A81B;
  311.     {$ENDC}
  312. {$ENDC}
  313.  
  314. FUNCTION FSpOpenResFile({CONST}VAR spec: FSSpec; permission: SignedByte): INTEGER;
  315.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  316.     INLINE $700D, $AA52;
  317.     {$ENDC}
  318. PROCEDURE FSpCreateResFile({CONST}VAR spec: FSSpec; creator: OSType; fileType: OSType; scriptTag: ScriptCode);
  319.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  320.     INLINE $700E, $AA52;
  321.     {$ENDC}
  322. PROCEDURE ReadPartialResource(theResource: Handle; offset: LONGINT; buffer: UNIV Ptr; count: LONGINT);
  323.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  324.     INLINE $7001, $A822;
  325.     {$ENDC}
  326. PROCEDURE WritePartialResource(theResource: Handle; offset: LONGINT; buffer: UNIV Ptr; count: LONGINT);
  327.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  328.     INLINE $7002, $A822;
  329.     {$ENDC}
  330. PROCEDURE SetResourceSize(theResource: Handle; newSize: LONGINT);
  331.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  332.     INLINE $7003, $A822;
  333.     {$ENDC}
  334. FUNCTION GetNextFOND(fondHandle: Handle): Handle;
  335.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  336.     INLINE $700A, $A822;
  337.     {$ENDC}
  338.  
  339. {$IFC NOT TARGET_OS_MAC }
  340. {  QuickTime 3.0 }
  341. FUNCTION RegisterResourceEndianFilter(theType: ResType; theFilterProc: ResourceEndianFilterPtr): OSErr; C;
  342. {$ENDC}
  343.  
  344. { Use TempInsertROMMap to force the ROM resource map to be
  345.    inserted into the chain in front of the system. Note that
  346.    this call is only temporary - the modified resource chain
  347.    is only used for the next call to the resource manager.
  348.    See IM IV 19 for more information. 
  349. }
  350. PROCEDURE TempInsertROMMap(tempResLoad: BOOLEAN);
  351.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  352.     INLINE $70FF, $4A1F, $56C0, $31C0, $0B9E;
  353.     {$ENDC}
  354.  
  355. {$IFC OLDROUTINENAMES }
  356. FUNCTION SizeResource(theResource: Handle): LONGINT;
  357.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  358.     INLINE $A9A5;
  359.     {$ENDC}
  360. FUNCTION MaxSizeRsrc(theResource: Handle): LONGINT;
  361.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  362.     INLINE $A821;
  363.     {$ENDC}
  364. PROCEDURE RmveResource(theResource: Handle);
  365.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  366.     INLINE $A9AD;
  367.     {$ENDC}
  368.  
  369. {$ENDC}  {OLDROUTINENAMES}
  370.  
  371. {
  372.     These typedefs were originally created for the Copland Resource Mangager
  373. }
  374.  
  375. TYPE
  376.     ResFileRefNum                        = INTEGER;
  377.     ResID                                = INTEGER;
  378.     ResAttributes                        = INTEGER;
  379.     ResFileAttributes                    = INTEGER;
  380.  
  381.  
  382. {$ALIGN RESET}
  383. {$POP}
  384.  
  385. {$SETC UsingIncludes := ResourcesIncludes}
  386.  
  387. {$ENDC} {__RESOURCES__}
  388.  
  389. {$IFC NOT UsingIncludes}
  390.  END.
  391. {$ENDC}
  392.